package com.hbnu.system.core.time;

import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;

import java.io.IOException;

/**
 * 处理Hutool DateTime类型的空字符串反序列化
 */
public class DateTimeDeserializer extends JsonDeserializer<DateTime> {
    @Override
    public DateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
        String value = p.getValueAsString();
        // 空字符串或空白字符直接返回null，避免解析Week类型时出错
        if (value == null || value.trim().isEmpty()) {
            return null;
        }
        // 正常解析日期字符串
        try {
            return DateUtil.parse(value);
        } catch (Exception e) {
            // 日期格式无效时也返回null（或抛出友好异常）
            return null;
        }
    }
}
